#pragma once

#include <msxml6.h>

namespace XMLSAX
{
	namespace Core
	{
		class __declspec(dllexport) ParsingErrorHandler: ISAXErrorHandler
		{
		public:
			ParsingErrorHandler();
			virtual ~ParsingErrorHandler();

			long __stdcall QueryInterface(const struct _GUID &, void **);
			unsigned long __stdcall AddRef(void);
			unsigned long __stdcall Release();

			virtual HRESULT STDMETHODCALLTYPE error(ISAXLocator *pLocator, const wchar_t *pErrorMessage, HRESULT hErrorCode);
			virtual HRESULT STDMETHODCALLTYPE fatalError(ISAXLocator *pLocator, const wchar_t *pErrorMessage, HRESULT hErrorCode);
			virtual HRESULT STDMETHODCALLTYPE ignorableWarning(ISAXLocator *pLocator, const wchar_t *pErrorMessage, HRESULT hErrorCode);
		};
	}
}